package com.probiz.estore.common.model.sales.base;

import java.io.Serializable;
import com.probiz.estore.core.model.BaseObject;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.EqualsBuilder;

/**
 * Applicants Base Java Bean, base class for the model, mapped directly to database table
 * 
 * Avoid changing this file if not necessary, will be overwritten. 
 *
 * TODO: add class/table comments
 */
public class ApplicantsTbl extends BaseObject implements Serializable {

    protected Integer applicantsId;
	protected String applicantsName;
	protected String jobStatus;
	protected String area;
	protected String email;
	protected String phone;
	protected String address;
	protected String desc;


	/**
	 * Default Empty Constructor for class Applicants
	 */
	public ApplicantsTbl () {
		super();
	}
	
	/**
	 * Default Key Fields Constructor for class Applicants
	 */
	public ApplicantsTbl (
		 Integer in_applicantsId
        ) {
		this.setApplicantsId(in_applicantsId);
    }

    

	/**
	 * 	 * @return Integer
     * @hibernate.id column="applicants_id" type="java.lang.Integer" generator-class="native"
	 */
	public Integer getApplicantsId() {
		return this.applicantsId;
	}
	
	/**
	 * Set the applicantsId
	 */	
	public void setApplicantsId(Integer aValue) {
		this.applicantsId = aValue;
	}	

	/**
	 * 申请人	 * @return String
	 * @hibernate.property column="applicantsName" type="java.lang.String" length="12" not-null="true" unique="false"
	 */
	public String getApplicantsName() {
		return this.applicantsName;
	}
	
	/**
	 * Set the applicantsName
	 * @spring.validator type="required"
	 */	
	public void setApplicantsName(String aValue) {
		this.applicantsName = aValue;
	}	

	/**
	 * 职业状况	 * @return String
	 * @hibernate.property column="job_status" type="java.lang.String" length="64" not-null="false" unique="false"
	 */
	public String getJobStatus() {
		return this.jobStatus;
	}
	
	/**
	 * Set the jobStatus
	 */	
	public void setJobStatus(String aValue) {
		this.jobStatus = aValue;
	}	

	/**
	 * 代理地区	 * @return String
	 * @hibernate.property column="area" type="java.lang.String" length="512" not-null="false" unique="false"
	 */
	public String getArea() {
		return this.area;
	}
	
	/**
	 * Set the area
	 */	
	public void setArea(String aValue) {
		this.area = aValue;
	}	

	/**
	 * 电子邮箱	 * @return String
	 * @hibernate.property column="email" type="java.lang.String" length="32" not-null="false" unique="false"
	 */
	public String getEmail() {
		return this.email;
	}
	
	/**
	 * Set the email
	 */	
	public void setEmail(String aValue) {
		this.email = aValue;
	}	

	/**
	 * 联系电话	 * @return String
	 * @hibernate.property column="phone" type="java.lang.String" length="18" not-null="true" unique="false"
	 */
	public String getPhone() {
		return this.phone;
	}
	
	/**
	 * Set the phone
	 * @spring.validator type="required"
	 */	
	public void setPhone(String aValue) {
		this.phone = aValue;
	}	

	/**
	 * 详细地址	 * @return String
	 * @hibernate.property column="address" type="java.lang.String" length="512" not-null="false" unique="false"
	 */
	public String getAddress() {
		return this.address;
	}
	
	/**
	 * Set the address
	 */	
	public void setAddress(String aValue) {
		this.address = aValue;
	}	

	/**
	 * 简历说明	 * @return String
	 * @hibernate.property column="desc" type="java.lang.String" length="1024" not-null="false" unique="false"
	 */
	public String getDesc() {
		return this.desc;
	}
	
	/**
	 * Set the desc
	 */	
	public void setDesc(String aValue) {
		this.desc = aValue;
	}	

	/**
	 * @see java.lang.Object#equals(Object)
	 */
	public boolean equals(Object object) {
		if (!(object instanceof ApplicantsTbl)) {
			return false;
		}
		ApplicantsTbl rhs = (ApplicantsTbl) object;
		return new EqualsBuilder()
				.append(this.applicantsId, rhs.applicantsId)
				.append(this.applicantsName, rhs.applicantsName)
				.append(this.jobStatus, rhs.jobStatus)
				.append(this.area, rhs.area)
				.append(this.email, rhs.email)
				.append(this.phone, rhs.phone)
				.append(this.address, rhs.address)
				.append(this.desc, rhs.desc)
				.isEquals();
	}

	/**
	 * @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		return new HashCodeBuilder(-82280557, -700257973)
				.append(this.applicantsId) 
				.append(this.applicantsName) 
				.append(this.jobStatus) 
				.append(this.area) 
				.append(this.email) 
				.append(this.phone) 
				.append(this.address) 
				.append(this.desc) 
				.toHashCode();
	}

	/**
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		return new ToStringBuilder(this)
				.append("applicantsId", this.applicantsId) 
				.append("applicantsName", this.applicantsName) 
				.append("jobStatus", this.jobStatus) 
				.append("area", this.area) 
				.append("email", this.email) 
				.append("phone", this.phone) 
				.append("address", this.address) 
				.append("desc", this.desc) 
				.toString();
	}

	/**
	 * Return the name of the first key column
	 */
	public String getFirstKeyColumnName() {
		return "applicantsId";
	}
	/**
	 * Return the Id (pk) of the entity, must be Integer
	 */
	public Integer getId() {
		return applicantsId;
	}

}